package jdkproxy;

import org.eclipse.microprofile.faulttolerance.Bulkhead;

import javax.interceptor.InvocationContext;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;

@Bulkhead
public class CustomInvocationContext implements InvocationContext {
    private final Object target;

    private final Method method;

    private Object[] parameters;

    private final Map<String, Object> contextData;

    public CustomInvocationContext(Object target, Method method, Object... parameters) {
        this.target = target;
        this.method = method;
        this.parameters = parameters;
        this.contextData = new HashMap<>();
    }

    public Object getTarget() {
        return null;
    }

    public Object getTimer() {
        return null;
    }

    public Method getMethod() {
        return null;
    }

    public Constructor<?> getConstructor() {
        return null;
    }

    public Object[] getParameters() {
        return new Object[0];
    }

    public void setParameters(Object[] objects) {

    }

    public Map<String, Object> getContextData() {
        return null;
    }

    public Object proceed() throws Exception {
        return null;
    }
}
